home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
newsgrp
/
group03a.txt
/
000046_icon-group-sender_Wed Mar 26 09:28:14 2003.msg
< prev
next >
Wrap
Internet Message Format
|
2003-12-22
|
4KB
Return-Path: <icon-group-sender>
Received: (from root@localhost)
by baskerville.CS.Arizona.EDU (8.11.1/8.11.1) id h2QGSDg15513
for icon-group-addresses; Wed, 26 Mar 2003 09:28:13 -0700 (MST)
Message-Id: <200303261628.h2QGSDg15513@baskerville.CS.Arizona.EDU>
X-Newsgroups: comp.lang.icon
Subject: Icon-like programming language - 2 attachments
From: Raja Mukherji <rapl_lang@yahoo.co.uk>
User-Agent: Xnews/5.04.25
X-NNTP-Posting-Host: 10155phys232.ucd.ie
Date: 26 Mar 2003 12:48:26 GMT
To: icon-group@cs.arizona.edu
Errors-To: icon-group-errors@cs.arizona.edu
Status: RO
I don't know if anyone is interested but after using Icon for little while
(and yes Icon is great), I decided to try and write a programming language
with similar features to Icon with a number of differences. I started just
over 3 years ago, and although not finished yet, I think I've completed
enough to finally make a posting about it. So here it is.
My language is called Rapl, and like Icon has generators, backtracking,
built-in lists, tables and strings (although not all features of these have
been implemented yet). It also compiles to bytecode (my compiler is
currently written in Icon), which is then interpreted by my virtual
machine, currently written in assembly code for mmx-processors and higher.
Currently it only runs on Windows but porting to Linux should be fairly
easy since only the system calls have to be translated.
However, Rapl also supports OOP with classes and objects, has runtime
overloaded functions and operators, support for basic functional
programming, redefinition of internal operators at runtime, dynamic loading
of modules (both bytecode and native), and I think the internal
architecture makes it much easier to extend than Icon.
Anyway, here are two sample files to look at, if anybody is interested in
testing my current implementation, commenting on any language features, or
wants to know how any features were implemented, talk to me...
begin 644 list.rpl
M;6]D(&QI<W0[#0H-"FEM<"!S>7,@=7-E('=R:71E.PT*#0ID968@;&ES=&YO
M9&4@:7,@='EP92A686QU92P@4')E=BP@3F5X="D@*`T*"6YE=R!I<R!F=6XH
M5F%L=64I("@-"@D)4V5L9BY686QU92`\+2!686QU93L-"@D)4V5L9BY0<F5V
M(#PM(%-E;&8N3F5X="`\+2!N=6QL.PT*"0E396QF.PT*"2D[#0HI.PT*#0ID
M968@;&ES="$@:7,@='EP92A(96%D+"!486EL+"!,96YG=&@I("@-"@EN97<@
M:7,@9G5N*"D@*`T*"0E396QF+DAE860@/"T@4V5L9BY486EL(#PM(&YU;&P[
M#0H)"5-E;&8N3&5N9W1H(#PM(#`[#0H)"5-E;&8[#0H)*3L-"@EP=70@:7,@
M9G5N*%9A;'5E*2`H#0H)"79A<B!.;V1E(#PM(&QI<W1N;V1E*%9A;'5E*3L-
M"@D):68@+U-E;&8N2&5A9"`\+2!396QF+E1A:6P@/"T@3F]D92!E;'-E("@-
M"@D)"5-E;&8N5&%I;"Y.97AT(#PM($YO9&4[#0H)"0E.;V1E+E!R978@/"T@
M4V5L9BY486EL.PT*"0D)4V5L9BY486EL(#PM($YO9&4[#0H)"2D[#0H)"5-E
M;&8N3&5N9W1H(#PM(%-E;&8N3&5N9W1H("L@,3L-"@D)4V5L9CL-"@DI.PT*
M"7!U<V@@:7,@9G5N*%9A;'5E*2`H#0H)"79A<B!.;V1E(#PM(&QI<W1N;V1E
M*%9A;'5E*3L-"@D):68@+U-E;&8N2&5A9"`\+2!396QF+E1A:6P@/"T@3F]D
M92!E;'-E("@-"@D)"5-E;&8N2&5A9"Y0<F5V(#PM($YO9&4[#0H)"0E.;V1E
M+DYE>'0@/"T@4V5L9BY(96%D.PT*"0D)4V5L9BY(96%D(#PM($YO9&4[#0H)
M"2D[#0H)"5-E;&8N3&5N9W1H(#PM(%-E;&8N3&5N9W1H("L@,3L-"@D)4V5L
M9CL-"@DI.PT*"7!O<"!I<R!F=6XH*2`H#0H)"79A<B!.;V1E(#PM(%Q396QF
M+DAE860[#0H)"2A<*%-E;&8N2&5A9"`\+2!.;V1E+DYE>'0I*2Y0<F5V('P@
M4V5L9BY486EL(#PM(&YU;&P[#0H)"5-E;&8N3&5N9W1H(#PM(%-E;&8N3&5N
M9W1H("T@,3L-"@D)3F]D92Y686QU93L-"@DI.PT*"7!U;&P@:7,@9G5N*"D@
M*`T*"0EV87(@3F]D92`\+2!<4V5L9BY486EL.PT*"0DH7"A396QF+E1A:6P@
M/"T@3F]D92Y0<F5V*2DN3F5X="!\(%-E;&8N2&5A9"`\+2!N=6QL.PT*"0E3
M96QF+DQE;F=T:"`\+2!396QF+DQE;F=T:"`M(#$[#0H)"4YO9&4N5F%L=64[
M#0H)*3L-"@ES:&]W(&ES(&9U;B@I("@-"@D)=W)I=&4H(ELB*3L-"@D)=F%R
M($YO9&4[#0H)"7=R:71E*"A.;V1E(#PM(%Q396QF+DAE860I+E9A;'5E*2`F
M(')E<"!W<FET92@B+"`B+"`H3F]D92`\+2!<3F]D92Y.97AT*2Y686QU92D@
B?"!L96%V93L-"@D)=W)I=&4H(EU<;B(I.PT*"2D[#0HI.P``
`
end
begin 644 test.rpl
M;6]D('1E<W0[#0H-"FEM<"!S>7,@=7-E('=R:71E.PT*:6UP(&QI<W0@87,@
M;#L-"@T*9&5F('-T87)T(2!I<R`H#0H)=F%R($P@/"T@;"YL:7-T*"D[#0H)
F979E<GD@3"YP=7-H*#$@=&\@,3`I.PT*"4PN<VAO=R@I.PT**3L`
`
end